<?php

namespace Dreamcat\Class2Array;

use Dreamcat\Class2Array\Exception\EncodeError;

/**
 * json编码
 * @author vijay
 */
interface JsonEncode
{
    /**
     * 将数据编码为json
     * @param mixed $data 要编码的数据
     * @return string 编后的结果
     * @throws EncodeError
     */
    public function jsonEncode(mixed $data): string;

    /**
     * 将json数据解码为指定的数据
     * @param string $data json字符串
     * @psalm-param class-string<T> $type 指定的类型
     * @psalm-return T 转换后的类型
     * @throws EncodeError
     * @template T
     */
    public function jsonDecode(string $data, string $type): mixed;
}

# end of file
